V4.5 possible regression: "version `GLIBC |
您所在的位置:网站首页 › debian 8 › V4.5 possible regression: "version `GLIBC |
Hello @jaimet , yes this looks like a packaging problem. The problem is that the libpython was linked with glibc 2.35 on ubuntu-22.04, but the code is run on debian bullseye with glibc 2.31. Glibc of course does not guarantee backward compatibility, so the dynamic loader fails because new symbol versions in 2.35 are not available in 2.31. The problem is that esptool github build workflow uses ubuntu-latest(22.04) runner and pyinstaller does not pack glibc libraries. This is easily reproducible docker run -it --rm python:3.8-bullseye bash wget https://github.com/espressif/esptool/releases/download/v4.5/esptool-v4.5-linux-amd64.zip unzip esptool-v4.5-linux-amd64.zip esptool-v4.5-linux-amd64/esptool[12] Error loading Python lib '/tmp/_MEI265mQ2/libpython3.8.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.35' not found (required by /tmp/_MEI265mQ2/libpython3.8.so.1.0) One solution would be to somehow force the pyinstaller to pack also libc libraries for esptool, but I'm not sure if this could be easily done. Other possibility is to use some older ubuntu runner and make it clear that the pyinstaller one-file package requires at least a specific glibc version installed on the system where it's used. There is a github ubuntu-20.04 runner which has glibc 2.31 and using it seems to solve this problem. At least for the current debian stable distro. I quickly tried this in my esptool fork with the current version on master branch and the generated pyinstaller package is working for me on debian 11 root@82bef8e11ffe:/# cat /etc/debian_version 11.6 root@82bef8e11ffe:/# ./esptool version esptool.py v4.6-dev 4.6-devThe following patch should hopefully fix this problem, but maybe there is a better solution. diff --git a/.github/workflows/build_esptool.yml b/.github/workflows/build_esptool.yml index 380732915f2c..ca4d7eaca49d 100644 --- a/.github/workflows/build_esptool.yml +++ b/.github/workflows/build_esptool.yml @@ -8,12 +8,12 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, ubuntu-latest, windows-latest] + os: [macos-latest, ubuntu-20.04, windows-latest] include: - os: macos-latest TARGET: macos SEPARATOR: ':' - - os: ubuntu-latest + - os: ubuntu-20.04 TARGET: linux-amd64 SEPARATOR: ':' - os: windows-latestThank you very much for reporting this. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |